package Inner;

import java.sql.SQLOutput;

class OuterClass1 {
    public int date1 = 1;
    int date2 = 2;
    public static int date3 = 3;

    //静态内部类
    static class InnerClass1 {
        public int date4 = 4;
        int date5 = 5;
        public static int date6 = 6;

        public void func() {
            System.out.println("hehe");
            OuterClass outerClass = new OuterClass();
            System.out.println(outerClass.date1);
            //静态内部类当中，不能访问外部类中的非静态成员变量，因为外部类的非静态成员变量需要通过外部类的对象的引用才能访问。
//            System.out.println(date1);
//            System.out.println(date2);
            System.out.println(date3);
            System.out.println(date4);
            System.out.println(date5);
            System.out.println(date6);
        }
    }

}
public class Test2 {
    public static void main(String[] args) {
        OuterClass1.InnerClass1 innerClass1= new OuterClass1.InnerClass1();
    }
}

class Person {
    int age;
    String name;
}
class Test3 {
    public static void main(String[] args) {
        new Person(); //匿名对象
        System.out.println(new Person().age);
        System.out.println(new Person().name);
        //匿名内部类
        new Person() {

        };
    }
    public void func() {
        //局部内部类，只能在方法内部被使用
        class Inner {
            public void test() {
                System.out.println(11);
            }
        }
        Inner inner = new Inner();
        inner.test();
    }
}